
/**
 * 
 */


/**
 * @author SERGIO MOLINA
 * Universidad del Valle de Guatemala
 * Algoritmos y Estructura de Datos
 * Sergio Molina
 * 10256
 * 23 de agosto de 2011
 * Descripcion: Clase Stackito que implementa la interfaz Stack recibiendo un 
 * parametro generico determinado por E, en este se le da cuerpo a los metodos
 * de la intefaz Stack.
 */

public class Stackito<E> extends Pila<E> {

	
    /**
     * Clase Constructora donde se inicializa un Stack vacio y con apuntador en 0
     * inicializa el stack como arraylist.
     */
    public Stackito(){
    	super();
    
    }
    
    
    @Override
    public void push(E elemento) {
        datos.add(elemento);
        apuntador ++;
    }

    @Override
    public E pop() {
        //variable temporal inicializada en null debido a q no sabemos el tipo de dato que recebira
        E ultimo = null;
        if(apuntador!=0){
            apuntador --;
            ultimo = datos.get(apuntador);
            datos.remove(apuntador);
        }
        else{
            System.out.println("No hay elementos en el Stack.");
        }
        return ultimo;
    }

    @Override
    public E peek() {
        E ultimo = null;
        if(apuntador!=0){
            apuntador --;
            ultimo = datos.get(apuntador);
            apuntador ++;
        }
        else{
            System.out.println("No hay elementos en el Stack.");
        }
        return ultimo;
    }
    	
}
